unit PesquisaContaCorrente;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UFormPesquisa, DB, DBTables, StdCtrls, Grids, DBGrids, Buttons,
  ExtCtrls, DBCtrls, Mask, ToolEdit, CheckLst;

type
  TFPesquisaContaCorrente = class(TFormPesquisa)
    Label11: TLabel;
    ENatureza: TEdit;
    Label1: TLabel;
    Label3: TLabel;
    DBLCBConta: TDBLookupComboBox;
    Label7: TLabel;
    DEDataIni: TDateEdit;
    Label2: TLabel;
    DSConta: TDataSource;
    CkBTodasEmpresas: TCheckBox;
    Label10: TLabel;
    CLBEmpresas: TCheckListBox;
    EGrupo: TEdit;
    DEDataFim: TDateEdit;
    procedure BtnConsultarClick(Sender: TObject);
    procedure CkBTodasEmpresasClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnSelecionarClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtnLimparClick(Sender: TObject);
    procedure DBLCBContaKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FPesquisaContaCorrente: TFPesquisaContaCorrente;
  s : String;
implementation

uses UGeral, ContaCorrente;

{$R *.dfm}

procedure TFPesquisaContaCorrente.BtnConsultarClick(Sender: TObject);
begin
 if (EmpresasDesmarcadas(CLBEmpresas) = CLBEmpresas.Items.Count) then
  CkBTodasEmpresasClick(Sender);
 S:=Concatenaempresas(CLBEmpresas);

 QPesquisa.Close;
 QPesquisa.SQL.Clear;
 QPesquisa.SQL.Add('Select CONTACORRENTE.CONT_CORR_CODIGO as CodConta,CONTACORRENTE.CONT_CORR_DESCRICAO as Conta,CONTACORRENTE.CONT_CORR_GRUPO as Grupo,ESPECIE.ESP_DESCRICAO as Especie ');
 QPesquisa.SQL.Add(',CONTACORRENTE.CONT_CORR_SALDO as Saldo,CONTACORRENTE.CONT_CORR_DATAABERTURA as DataAbertura,CONTACORRENTE.CONT_CORR_NATUREZA as Natureza,CONTACORRENTE.CONT_CORR_TAXAADM as Taxa ');
 QPesquisa.SQL.Add(',PLANOCONTABILIDADE.PLANOCONT_CODIGOREDUZIDO as CodRedContaContabil,PLANOCONTABILIDADE.PLANOCONT_DESCRICAO as ContaContabil ');
 QPesquisa.SQL.Add('From PLANOCONTABILIDADE Right join  (CONTACORRENTE LEFT JOIN ESPECIE ON CONTACORRENTE.CONT_CORR_ESPECIE =  ESPECIE.ESP_CODIGO) ON CONTACORRENTE.CONT_CORR_CONTACONTABIL =  PLANOCONTABILIDADE.PLANOCONT_CODIGO ');
 QPesquisa.SQL.Add(' Where (Codigoempresa in ( ' + s + ') )');

 if EGrupo.Text <> '' then
  begin
   QPesquisa.SQL.Add(' And (CONTACORRENTE.CONT_CORR_GRUPO = :Grup)');
   QPesquisa.ParamByName('Grup').AsString:= EGrupo.Text;
  end;

 if DBLCBConta.Text <> '' then
  begin
   QPesquisa.SQL.Add(' And (CONTACORRENTE.CONT_CORR_CODIGO = :Cont)');
   QPesquisa.ParamByName('Cont').AsInteger:= DBLCBConta.KeyValue;
  end;

 if ENatureza.Text <> '' then
  begin
   QPesquisa.SQL.Add(' And (CONTACORRENTE.CONT_CORR_NATUREZA = :Nat)');
   QPesquisa.ParamByName('Nat').AsString:= ENatureza.Text;
  end;

 if (DEDataIni.Date <> 0) and (DEDataFim.Date <> 0) then
  begin
   QPesquisa.SQL.Add(' and (CONTACORRENTE.CONT_CORR_DATAABERTURA between :DataI and :DataF ) ');
   QPesquisa.ParamByName('DataI').AsDate:=DEDataIni.Date;
   QPesquisa.ParamByName('DataF').AsDate:=DEDataFim.Date;
  end;
   QPesquisa.SQL.Add('Order By CONTACORRENTE.CONT_CORR_DESCRICAO ');
 QPesquisa.Open;
 inherited;
 BtnImprimir.Enabled:=false;
end;

procedure TFPesquisaContaCorrente.CkBTodasEmpresasClick(Sender: TObject);
Var
 i :Integer;
begin
  inherited;
 for i := 0 to CLBEmpresas.Items.Count - 1 do
  begin
   if StrToInt(Copy(CLBEmpresas.Items.Strings[i],1,pos('-',CLBEmpresas.Items.Strings[i])- 1)) = Codigoempresa then
    CLBEmpresas.Checked[i]:=true
   else
    CLBEmpresas.Checked[i]:=CkBTodasEmpresas.Checked;
  end;
end;

procedure TFPesquisaContaCorrente.FormCreate(Sender: TObject);
begin
  inherited;
 QPesquisa.Close;
 QPesquisa.SQL.Clear;
 QPesquisa.SQL.Add('Select Emp_Codigo,Emp_Fantasia from empresa');
 QPesquisa.Open;
 QPesquisa.First;
 CLBEmpresas.Items.Clear;
 while not(QPesquisa.Eof) do
 begin
  CLBEmpresas.Items.Add(QPesquisa.fieldByname('Emp_Codigo').AsString + '-' + QPesquisa.fieldByname('Emp_Fantasia').AsString );
  QPesquisa.Next;
 end;
 CkBTodasEmpresasClick(Sender);
 QPesquisa.Close; 

end;

procedure TFPesquisaContaCorrente.BtnSelecionarClick(Sender: TObject);
begin
  inherited;
 FContaCorrente.QContaCorrente.Close;
 FContaCorrente.QContaCorrente.Open;
 FContaCorrente.QContaCorrente.Locate('CONT_CORR_CODIGO',QPesquisa.fieldByname('CodConta').AsString,[loCaseInsensitive]);
 Self.Close;
end;

procedure TFPesquisaContaCorrente.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 FContaCorrente.Enabled:=true;
 FContaCorrente.Show;
 FPesquisaContaCorrente:=nil;
 inherited;
end;

procedure TFPesquisaContaCorrente.BtnLimparClick(Sender: TObject);
begin
  inherited;
 EGrupo.Text:='';
 DBLCBConta.KeyValue:=null;
 ENatureza.Text:='';
 DEDataIni.Date:=0;
 DEDataFim.Date:=0;
end;

procedure TFPesquisaContaCorrente.DBLCBContaKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  case key of
  116 : begin //F5
          TDBLookupComboBox(Sender).ListSource.DataSet.Close;
          TDBLookupComboBox(Sender).ListSource.DataSet.Open;
        end ;
  46  : begin
          TDBLookupComboBox(Sender).KeyValue:=null;
        end;
 end;

end;

end.
